<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
	</body>
	<script type="text/javascript">
		let p1 = new Promise((resolve, reject)=>{
			setTimeout(()=>{
				// resolve('p1成功')
				reject('p1失败')
			}, 1000)
		})
		//如果这里单独捕获的错误，即使p1错误了，也不影响Promise.all的then()
		.catch(err=>{
			console.log(err)
		})		
		
		let p2 = new Promise((resolve, reject)=>{
			setTimeout(()=>{
				resolve('p2成功')
			}, 1000)
		})
		
		//批量获取promise，所有promise同时执行，统一接收结果
		Promise.all([p1,p2])
		//【机制】如果前面的promise均没有错误，或者错误被前面捕获，则这里正常获取到结果
		.then(res=>{
			console.log(res)
		})
		.catch(err=>{
			//【机制】如果前面的promise有任何一个错误，未被catch，则这里统一捕获，且不会执行then里面的回调
			console.log(err)
		})
	</script>
</html>
